System and method for glitch analysis in circuits

ABSTRACT

A system and method for analyzing power glitch in circuits includes simulating a circuit to provide waveform responses at positions of interest in the circuit. Each waveform response is processed to determine glitch power by comparing optimal energy to actual energy for the waveform. The circuit is adjusted to reduce loss due to the glitch power.

BACKGROUND

1. Technical Field

The present invention relates to circuit design and analysis and moreparticularly to a system, tool and method for performing glitch analysison circuit designs to provide information on power conservation.

2. Description of the Related Art

Glitch power analysis is the analysis of circuit simulation waveforms todetermine the amount of power wasted due to excess switching. During asingle clock cycle, a capacitor may be charged and discharged multipletimes before settling on a final state that may be read on an output pinat the end of the cycle. This charging and discharging can use a lot ofpower and depending on the severity of the case, can contribute asubstantial portion of the total power used. With power constraintsbeing a consistent concern for designers, any tools for identifyingareas that can be improved are always a useful resource.

SUMMARY

A system and method for analyzing power glitch in circuits includesimulating a circuit to provide waveform responses at positions ofinterest in the circuit. Each waveform response is processed todetermine glitch power by comparing optimal energy to actual energy forthe waveform. The circuit is adjusted to reduce loss due to the glitchpower.

A system for analyzing power glitch includes a simulator configured tosimulate a circuit to provide waveform responses at positions ofinterest in the circuit. An analysis tool is configured to analyze eachwaveform response to determine glitch power for the waveform response bycomparing optimal energy to actual energy for the waveform. A circuitadjustment module is configured to modify the circuit to reduce loss dueto the glitch power.

These and other features and advantages will become apparent from thefollowing detailed description of illustrative embodiments thereof,which is to be read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

The disclosure will provide details in the following description ofpreferred embodiments with reference to the following figures wherein:

FIG. 1 is a block/flow diagram showing a system/method for glitch poweranalysis in accordance with one embodiment;

FIG. 2 is a diagram illustratively showing voltage waveforms inaccordance with one embodiment;

FIG. 3 is a schematic diagram showing an illustrative circuit employedto demonstrate aspects of the present invention;

FIG. 4 is a timing diagram showing waveforms for points of interest inFIG. 3;

FIGS. 5-7 show voltage versus time diagrams for examples of normalwaveforms in accordance with the present principles;

FIG. 8 shows voltage versus time diagrams for examples of waveformswhere glitch power is detected in accordance with the presentprinciples;

FIG. 9 is a block/flow diagram showing a system/method for glitch poweranalysis in accordance with another embodiment;

FIG. 10 is a block/flow diagram showing a system/method for processingeach waveform in accordance with one embodiment;

FIG. 11 is a block/flow diagram showing the system/method of FIG. 10with additional details;

FIG. 12 is a block/flow diagram showing a system/method for determiningif a waveform acts like a clock signal in accordance with oneembodiment; and

FIG. 13 is a block/flow diagram showing a system/method for determiningoptimal power in accordance with one embodiment.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In accordance with present embodiments, glitch power analysis tools areprovided. Glitch power analysis includes circuit simulation wherewaveforms are employed to determine an amount of power wasted due toexcess switching or other circuit effects or actions. For example,during a single clock cycle, a capacitor may be charged and dischargedmultiple times before settling on a final state that is read on anoutput pin at the end of the cycle. This charging and discharging canuse a lot of power and depending on the severity of the case, cancontribute a substantial portion of the total power used.

Since a method for identifying glitch power preferably employs voltagewaveforms, a simulator is used to generate the waveform data as well ascapacitance data for each net in the circuit. A net list describes thelist of devices in the circuit being tested where a device can be anybasic electronic structure such as a capacitor, resistor, inductor,diode, wire, switch, connector, etc.

The tools provided in accordance with the present principles benefit theoverall circuit design process by helping to identify areas that may bewasting power. Since conserving power is an increasing problem in highspeed or complex circuits, any tools for identifying areas where poweris being lost can help reduce overall power. For example, in a largecircuit such as a processor, macros may be replicated multiple times onthe chip. If one of those particular macros can be shown to be wastingpower, then the overall wasted power for that macro is multiplied by thenumber of times it is used. Once glitch power is identified, it can beremedied by, e.g., adjusting wire lengths to accommodate for input skew,finding a statistical average of input skew to find the timing neededfor minimum glitch power, latching all of the input data, redesigning amacro or component, or any other number of solutions or actions. In asimple test of a 24-bit adder, for example, varying the timing on theinput pins resulted in up to 36% of the total power being attributed toglitch power. The tools in accordance with the present embodiments maybe used, among other things, to calculate clock power at macro and nodelevels, and to output a switching factor for each clock cycle and nodein a simulation to reduce or eliminate glitch power in a design.

Embodiments of the present invention can take the form of an entirelyhardware embodiment, an entirely software embodiment or an embodimentincluding both hardware and software elements. In a preferredembodiment, the present invention is implemented in software, whichincludes but is not limited to firmware, resident software, microcode,etc.

Furthermore, the invention can take the form of a computer programproduct accessible from a computer-usable or computer-readable mediumproviding program code for use by or in connection with a computer orany instruction execution system. For the purposes of this description,a computer-usable or computer readable medium can be any apparatus thatmay include, store, communicate, propagate, or transport the program foruse by or in connection with the instruction execution system,apparatus, or device. The medium can be an electronic, magnetic,optical, electromagnetic, infrared, or semiconductor system (orapparatus or device) or a propagation medium. Examples of acomputer-readable medium include a semiconductor or solid state memory,magnetic tape, a removable computer diskette, a random access memory(RAM), a read-only memory (ROM), a rigid magnetic disk and an opticaldisk. Current examples of optical disks include compact disk—read onlymemory (CD-ROM), compact disk—read/write (CD-R/W) and DVD.

A data processing system suitable for storing and/or executing programcode may include at least one processor coupled directly or indirectlyto memory elements through a system bus. The memory elements can includelocal memory employed during actual execution of the program code, bulkstorage, and cache memories which provide temporary storage of at leastsome program code to reduce the number of times code is retrieved frombulk storage during execution. Input/output or I/O devices (includingbut not limited to keyboards, displays, pointing devices, etc.) may becoupled to the system either directly or through intervening I/Ocontrollers.

Network adapters may also be coupled to the system to enable the dataprocessing system to become coupled to other data processing systems orremote printers or storage devices through intervening private or publicnetworks. Modems, cable modem and Ethernet cards are just a few of thecurrently available types of network adapters.

Referring now to the drawings in which like numerals represent the sameor similar elements and initially to FIG. 1, a system/method foridentifying glitches is illustratively shown in accordance with oneembodiment. In block 12, a circuit 14 is selected or designed to runthrough a glitch analysis simulator 16. The circuit 14 may include acomputer aided design schematic, a circuit listing or any otherrendition of a circuit. The nature of the circuit 14 does not matter solong as the simulator can generate voltage waveform output andcapacitance output for each net in the circuit in accordance with thisexample.

The simulator 16 then tests the circuit by supplying various patterns tothe input pins based on a user specification 18, and generates voltagewaveform outputs 19 describing what happens inside the circuit 14. Thevoltage waveforms generated by the simulator (see e.g., FIG. 2) are thenfed into a glitch analysis tool 20 to find the glitch power generated bythe circuit 14. The glitch power is then summarized for the entirecircuit in an output report 22, and specific net information is listedfor a more granular analysis. In one embodiment, a circuit adjustmentmodule 24 is configured to modify the circuit to reduce loss due to theglitch power. Module 24 may be implemented as part of analysis tool 20or as part of simulator 16. Module 24 provides the capability to makeadjustments to the circuit design to reduce the contribution to glitchpower loss. This may include human input and/or machine generatedfeedback and/or controls. Glitch power reduction may be achieved bychanging inputs, input values, circuit parameters, component sizesand/or capacities, or any other action to reduce glitch power.

Referring to FIG. 3, an illustrative circuit 102 is provided on which anexample circuit analysis will be performed to further demonstrate thepresent principles. Table 1 shows a signal analysis provided for nodesA, B, N1 and OUT depicted in FIG. 3.

TABLE 1 Total Optimal Total Node Source Source Glitch SignalCapacitance* Energy** Optimal Energy** Energy*** Node (pF) Transitions(pJ) Transitions (pJ) (pJ) A 0.02 1 0.00 1 0.00 0.00 B 0.01 1 0.01 10.01 0.00 N1 0.002 1 0.00 1 0.00 0.00 Out 0.05 2 0.05 0 0.00 0.05*Reported for all signal nodes by circuit simulator. **Total energydissipated in charging circuit and stored in node capacitance, assuming1 volt source. ***Difference in “Total Source Energy” and “OptimalSource Energy”.

Waveforms corresponding to the basic circuit 102 of FIG. 3 are generatedby the circuit simulator (16, FIG. 1) for a single clock cycle anddepicted in FIG. 4. The glitch analysis tool 20 then calculates each ofthe elements in Table 1 to calculate the glitch power as a differencebetween total actual power and total optimal power. An optimal power iscomputed as a total power necessary to meet the transition requirementsfor the waveform during a particular cycle. For example, the waveformfor node B has a single rising edge 202 (FIG. 4). In that case, thestate at the beginning of the cycle is 0, and the state at the end ofthe cycle is 1, so an optimal number of edges needed to meet thatrequirement is 1 rising edge. Based on the voltage and capacitanceassociated with that particular waveform, the total energy needed tocharge the capacitor is calculated as CV² where C is the capacitance andV is the voltage across the capacitor. The output node (OUT) starts at 1at beginning 204, and ends at 1 at ending 206, so the optimal energyneeded to charge that capacitor should be 0 for the cycle, however, thewaveform shows us that the capacitor was clearly discharged, and thenrecharged which requires energy. A normal waveform is one that eitherchanges states with a single rising or falling edge, or does not changestates at all and includes no edges.

Referring to FIGS. 5-8, note that in each of the following diagrams, avertical dotted line 301 represents the clock cycle boundary, and thetwo horizontal slotted lines 303 and 305 represent the rising andfalling threshold boundaries. The x-axis represents time and the y-axisrepresents voltage. Since the values are arbitrary, they have beenomitted from this example.

Referring to FIGS. 5 and 6, normal waveforms are presented switchingfrom state 1 to 0 and 0 to 1, respectively. There are no glitches ineither of these waveforms as they do not use any more power than isneeded.

FIG. 7 illustrates another normal waveform that does not switch states,but also does not use any excess power during the clock cycle. In thiscase, the capacitor is partially discharged but no extra power isconsumed during the clock cycle.

Referring to FIG. 8, different glitch waveforms are depicted. Each ofthe waveform diagrams 402-410 represents a case where glitch power isdetected. These diagrams are illustrative of some but not all thepossible glitch cases that might occur. In waveform 402, there is arising and falling edge during a clock cycle. In this case, the cyclestate both starts and ends at 0, so the optimal power usage should be 0.The additional “bump” in the waveform indicates that power was in factused, so all of that power is considered “glitch” power. Similarly forthe rest of the waveforms in FIG. 8, power is consumed when it need notbe. E.g., in case 410, there is only a single rising edge, however sinceit does not cross the threshold boundary, the state of the circuitremains at 0 which essentially means that no power should have beenused.

Referring to FIG. 9, a glitch detection system/method is illustrativelydescribed for a glitch detection tool 500 in accordance with oneembodiment. In block 502, an end user specifies parameters such as clockcycle time, simulation time, waveform data, where the output should go,rising and falling threshold values, clock tolerance information, andother information depending on the scenario. In block 504, the analysistool then reads in the waveform data, capacitances, etc. and processesit according to the user specifications in block 506. Once the data iscalculated (compiled) and statistics computed in block 508, the data issorted and output to the user specified file or screen, in block 510,where it can then be further analyzed. In accordance with the outputdata, design decisions and adjustments to circuits may be made inaccordance with the glitch information in block 512. In block 514, theprocess may be repeated to reduce glitch power loss until a threshold ismet or until a desired criteria is met. The program terminates andreturns one of several codes to the system indicating the program exitstatus in block 516.

Referring to FIG. 10, a more specific breakdown of block 506 for thesystem/method 500 is shown. FIG. 10 shows the basic process that occursfor each waveform in a collection being tested. Step 506 in FIG. 9 mayemploy the features of FIG. 10 for each waveform. In block 602, a datastructure or structures are created or designated to store edges. Edgesrefers to the transitions that occur in waveform simulations of circuitcomponents. In block 604, edges are extracted (rising and falling) fromthe waveforms generated by the simulations. In block 606, energy (E) iscomputed. For each rising edge, energy may be determined by CV². Inblock 608, power is computed for each rising edge, e.g., using P=E/twhere t is simulation time and E is the energy.

In block 610, the waveforms are scanned preferably in single cycleincrements to determine a switching pattern in the waveform. In block612, cycles switching from 0 to 1 have optimal energy=C*maxV², wheremaxV is the maximum voltage and C is the capacitance. Otherwise, optimalenergy is zero. In block 614, the waveform is checked to see if itbehaves like a clock. If the waveform behaves like a clock, exclude thewaveform from further power calculations.

In block 616, sum the edge powers to compute total power and totaloptimal power for the waveform. In block 618, return glitch power as thedifference between the total actual power (power) and optimal power.

Referring to FIG. 11, for each waveform in the analysis, system/method700 takes place. In block 702, wave energy, optimal energy, actual powerand glitch power are all initialized to zero. In block 704, adetermination of the presence of edges in a waveform is determined. Ifan edge is present, in block 706, the edge is read. In block 708, adetermination of whether the edge is rising is made. If the edge isrising, energy (E=CV²) is determined in block 712. Otherwise, in block710, energy (E) equals 0. In block 714, energy is summed as wave energy(WaveEnergy) for all rising edges of the waveform. In block 716, adetermination is made as to whether any more edges are present.

If more edges are present the path returns to block 706. If not, actualpower is computed as the wave energy per unit simulation time(WaveEnergy/Sim time or P=E/t). Sim time may be one cycle. In block 720,a determination of whether the waveform acts like a clock is made. Ifthe waveform acts like a clock, a switching pattern is determined forthe waveform in block 722 and optimal power is computed in block 724.

All of the rising and falling edges in the waveform are extracted, andthe energies are totaled. When no more edges are present and the totalpower consumed by the circuit has been calculated, it is run through aprocess to determine if the waveform behaves like a regular clock signalor not (FIG. 12). Since clock signals can run at multiples of the clockcycle time, ignoring clock identification can lead to a much higher andinaccurate glitch calculation. As it can be shown in FIG. 11, theenergies for each rising edge are added together until there are no moreedges in the waveform. At that point, the power is calculated bydividing the energy by the simulation time. After that part of theprocess is complete, and the clock determination has been made, optimalpower is calculated. The return block 726 returns the program path toblock 704 for each new waveform or to the system/method 500, preferablyto step 508 after all waveforms are checked.

Referring to FIG. 12, the IsClock( ) subroutine or module 800 employsuser-defined threshold values to determine if the signal being tested is“periodic enough” to be considered a clock signal. Clock waveformsgenerally follow a very accurate cycle of rising and falling waveformedges, however, the user can adjust the tolerance to omit waveforms withclock-like properties from the glitch calculation. In block 802, a countof all points half of a maximum waveform voltage are obtained. In block804, a determination of the counts is used to decide if the waveform isor acts like a clock. In this example, if the count is less than orequal to a user-defined value (e.g., 1), then the waveform is not aclock and zero is returned. If the count is greater than theuser-defined value, compute the average distance between the points inblock 808. The user-defined value permits the user to adjust thedetermination of a clock signal. In block 810, if the average is withina user specified limit or value, then the waveform is a clock and a“one” is returned in block 814. Otherwise, the waveform is not a clockand a “zero” is returned in block 812.

Referring to FIG. 13, a block/flow diagram 900 shows a determination ofoptimal power for an arbitrary waveform. Diagram 900 shows greaterdetail for block 616 of FIG. 10. The glitch power calculation comesdirectly from this calculation as a difference between the optimal powerand actual power. In block 902, current cycle (currentcycle) and optimalpower (optimalpower) are initialized to zero. Optimal energy (optenergy)is set equal to CV². In block 904, the cycle start and stop states aredetermined. In block 906, a determination is made as to whether thestart is below a threshold (e.g., starts at state zero). If the startstate is zero, a determination is made is block 908 as to whether thecycle stop state is 1 (or upper threshold). If in blocks 906 and 908 theanswer is no, then the current cycle count is incremented(currentcycle++) in block 912. If the stop state is “one” and the startstate is “zero”, then in block 910, total energy (tEnergy) is set equalto optoenergy. Then, in block 912, the current cycle is incremented.

In block 914, a check is made as to whether all cycles have beenchecked. For example, currentcycle<total cycles. If more cycles need tobe checked, the path returns to block 906. Otherwise, if no cycleremains, in block 916, optimalpower is determined as tEnergy/sim time.In block 918, the path returns to block 508 (FIG. 9).

Having described preferred embodiments of a system and method for glitchanalysis in circuits (which are intended to be illustrative and notlimiting), it is noted that modifications and variations can be made bypersons skilled in the art in light of the above teachings. It istherefore to be understood that changes may be made in the particularembodiments disclosed which are within the scope and spirit of theinvention as outlined by the appended claims. Having thus describedaspects of the invention, with the details and particularity required bythe patent laws, what is claimed and desired protected by Letters Patentis set forth in the appended claims.

1. A method for analyzing power glitch, comprising: simulating a circuitto provide waveform responses at positions of interest in the circuit;processing each waveform response with a processor to determine glitchpower for the waveform response by comparing optimal energy to actualenergy for the waveform; and adjusting the circuit to reduce loss due tothe glitch power.
 2. The method as recited in claim 1, whereinprocessing includes computing power for every rising edge in thewaveform.
 3. The method as recited in claim 2, further comprisingdetermining a switching pattern for the waveform to determine if atransition state contributes to the optimal energy.
 4. The method asrecited in claim 1, wherein processing includes: checking whether thewaveform functions as a clock signal; and if the waveform functions as aclock signal, removing the waveform from computation of the glitchpower.
 5. The method as recited in claim 4, further comprising adjustingcriteria for determining if the waveform functions as a clock signal. 6.The method as recited in claim 1, further comprising summing edge powersfor all waveforms to determine a total optimal power and a total powerfor all the waveforms wherein the glitch power is the difference betweenthe total optimal power and the total power.
 7. A computer programproduct for analyzing power glitch comprising a computer useable mediumincluding a computer readable program, wherein the computer readableprogram when executed on a computer causes the computer to perform thesteps of: simulating a circuit to provide waveform responses atpositions of interest in the circuit; processing each waveform responsewith a processor to determine glitch power for the waveform response bycomparing optimal energy to actual energy for the waveform; andadjusting the circuit to reduce loss due to the glitch power.
 8. Thecomputer program product as recited in claim 7, wherein processingincludes computing power for every rising edge in the waveform.
 9. Thecomputer program product as recited in claim 8, further comprisingdetermining a switching pattern for the waveform to determine if atransition state contributes to the optimal energy.
 10. The computerprogram product as recited in claim 7, wherein processing includes:checking whether the waveform functions as a clock signal; and if thewaveform functions as a clock signal, removing the waveform fromcomputation of the glitch power.
 11. The computer program product asrecited in claim 10, further comprising adjusting criteria fordetermining if the waveform functions as a clock signal.
 12. Thecomputer program product as recited in claim 7, further comprisingsumming edge powers for all waveforms to determine a total optimal powerand a total power for all the waveforms wherein the glitch power is thedifference between the total optimal power and the total power.
 13. Asystem for analyzing power glitch, comprising: a simulator configured tosimulate a circuit to provide waveform responses at positions ofinterest in the circuit; an analysis tool configured to analyze eachwaveform response to determine glitch power for the waveform response bycomparing optimal energy to actual energy for the waveform; and acircuit adjustment module configured to modify the circuit to reduceloss due to the glitch power.
 14. The system as recited in claim 13,wherein the analysis tool is configured to compute power for everyrising edge in the waveform and to determine a switching pattern for thewaveform to determine if a transition state contributes to the optimalenergy.
 15. The system as recited in claim 13, wherein the analysis toolincludes a clock checking module configured to check whether thewaveform functions a clock signal and if the waveform functions as aclock signal, to remove the waveform from computation of the glitchpower.
 16. The system as recited in claim 15, further comprisinguser-adjustable criteria to permit a user to adjust whether the waveformfunctions as a clock signal.
 17. The system as recited in claim 13,further comprising a summing mechanism to sum edge powers for allwaveforms to determine a total optimal power and a total power for allthe waveforms wherein the glitch power is the difference between thetotal optimal power and the total power.
 18. The system as recited inclaim 13, wherein the waveforms include voltage versus time waveformsand the power and optimal power are computed based on capacitance andvoltage per cycle.
 19. The system as recited in claim 13, wherein thewaveforms contribute to glitch power based upon staring states andending states.
 20. The system as recited in claim 13, wherein theanalysis tool outputs a glitch power listing to determine glitch powerloss from the points of interest.